package com.star.common.utils;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

/**
 * 日期工具
 *
 * @author yangzj
 */
public class Dates {

    /**
     * LocalDate转Date
     *
     * @param localDate 当地日期
     * @return {@link Date}
     */
    public static Date toDate(LocalDate localDate) {
        // 使用系统默认时区
        ZoneId defaultZoneId = ZoneId.systemDefault();
        // 将LocalDate转换为ZonedDateTime
        ZonedDateTime zonedDateTime = localDate.atStartOfDay(defaultZoneId);
        // 将ZonedDateTime转换为Instant，再转换为Date
        return Date.from(zonedDateTime.toInstant());
    }

    /**
     * LocalDateTime转Date
     *
     * @param localDateTime 当地日期时间
     * @return {@link Date}
     */
    public static Date toDate(LocalDateTime localDateTime) {
        // 使用系统默认时区
        ZoneId defaultZoneId = ZoneId.systemDefault();
        // 将LocalDate转换为ZonedDateTime
        ZonedDateTime zonedDateTime = localDateTime.atZone(defaultZoneId);
        // 将ZonedDateTime转换为Instant，再转换为Date
        return Date.from(zonedDateTime.toInstant());
    }
}
